/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package lolbatfsm.io;

import java.util.Collection;
import lolbatfsm.system.FSM;

/**
 * This interface defines the basic methods to load and store the FSMs
 * in a backend-agnostic way.
 * @author Matteo Battaglio <matteo.battaglio@gmail.com>
 */
public interface FSMStore {

    /**
     * Loads the previously stored finite-state machines.
     * @return the collection of the loaded finite-state machines
     */
    Collection<FSM> loadFSMs();

    /**
     * Stores the finite-state machines passed as parameter.
     * @param fsms the finite-state machines to store.
     */
    void storeFSMs(Collection<FSM> fsms);

}
